﻿Imports TepcelDominio
Imports TepcelBL

Public Class frmCategoria
    Dim err As New System.Windows.Forms.ErrorProvider
    Dim listaCategoria As New List(Of Categoria)
    Dim CategoriaBL As New CategoriaBL

    Private Sub frmCategoria_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Call CargarGrid()
        txtBuscar.Focus()
    End Sub

    Private Sub clearError()
        err.SetError(txtNombreCategoria, "")
        err.SetError(txtDescripcionCategoria, "")
    End Sub

    Private Sub CargarGrid()
        DGVLista.Rows.Clear()
        listaCategoria = CategoriaBL.GetAllFromCategoria
        If listaCategoria.Count = 0 Then
            btnModificar.Enabled = False
            btnEliminar.Enabled = False
        End If
        Dim i As Integer
        For i = 0 To listaCategoria.Count - 1
            With listaCategoria.Item(i)
                DGVLista.Rows.Add(i, .codigoCategoria, .nombreCategoria, .descripcionCategoria)
            End With
        Next
    End Sub

    Private Sub nuevo()
        btnModificar.Enabled = False
        btnEliminar.Enabled = False
        btnCancelar.Enabled = True
        btnGuardar.Enabled = True
        btnNuevo.Enabled = False

        txtNombreCategoria.Enabled = True
        txtDescripcionCategoria.Enabled = True

        DGVLista.Enabled = False

        txtNombreCategoria.Focus()
    End Sub

    Private Sub cancelar()
        btnModificar.Enabled = True
        btnEliminar.Enabled = True
        btnCancelar.Enabled = False
        btnGuardar.Enabled = False
        btnNuevo.Enabled = True

        txtNombreCategoria.Enabled = False
        txtDescripcionCategoria.Enabled = False

        DGVLista.Enabled = True

        txtCodigoCategoria.Text = ""
        txtNombreCategoria.Text = ""
        txtDescripcionCategoria.Text = ""
    End Sub

    Private Sub txtBuscar_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBuscar.TextChanged
        If txtBuscar.Text.Trim.Length = 0 Then
            Call CargarGrid()
        Else
            DGVLista.Rows.Clear()
            listaCategoria = CategoriaBL.SearchFromCategoria(txtBuscar.Text.Trim)
            Dim i As Integer
            For i = 0 To listaCategoria.Count - 1
                With listaCategoria.Item(i)
                    DGVLista.Rows.Add(i, .codigoCategoria, .nombreCategoria, .descripcionCategoria)
                End With
            Next
        End If
    End Sub

    Private Sub btnModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModificar.Click
        Call nuevo()
        Call clearError()
        Dim item As Integer = DGVLista.Item(0, DGVLista.CurrentRow.Index).Value
        With listaCategoria.Item(item)
            txtCodigoCategoria.Text = .codigoCategoria
            txtNombreCategoria.Text = .nombreCategoria
            txtDescripcionCategoria.Text = .descripcionCategoria
        End With

        txtNombreCategoria.Enabled = True
        txtDescripcionCategoria.Enabled = True


    End Sub

    Private Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
        If txtNombreCategoria.Text.Trim.Length = 0 Then
            err.SetError(txtNombreCategoria, "LLene el nombre de la categoría")
            Return
        Else
            err.SetError(txtNombreCategoria, "")
        End If

        If txtDescripcionCategoria.Text.Trim.Length = 0 Then
            err.SetError(txtDescripcionCategoria, "Llene una Descripción para la categoría")
            Return
        Else
            err.SetError(txtDescripcionCategoria, "")
        End If

        If (txtCodigoCategoria.Text.Trim.Length > 0) Then
            Dim cate As New TepcelDominio.Categoria(txtCodigoCategoria.Text, txtNombreCategoria.Text.Trim, txtDescripcionCategoria.Text.Trim)
            txtCodigoCategoria.Text = CategoriaBL.NuevoCategoria(cate)
        Else
            Dim cate As New TepcelDominio.Categoria("", txtNombreCategoria.Text.Trim, txtDescripcionCategoria.Text.Trim)
            txtCodigoCategoria.Text = CategoriaBL.NuevoCategoria(cate)
        End If


        Call cancelar()


        Call CargarGrid()

    End Sub

    Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click
        Dim result As DialogResult
        result = MessageBox.Show("confirma que desea Eliminar el Registro seleccionado?", "Eliminar", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
        If result = DialogResult.OK Then
            If CategoriaBL.DeleteCategoria(listaCategoria.Item(CInt(DGVLista.Item(0, DGVLista.CurrentRow.Index).Value)).codigoCategoria) Then
                MessageBox.Show("Registro Eliminado Correctamente", "Eliminar", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Call CargarGrid()
            Else
                MessageBox.Show("No se elimino el registro seleccionado", "Eliminar", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        End If
    End Sub

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        Call cancelar()
        Call clearError()

        txtBuscar.Focus()

    End Sub

    Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.Click
        Call nuevo()
        Call clearError()
    End Sub
End Class